﻿using System.Diagnostics;
using System.IO;

namespace SetupBuilder
{
    /// <summary>
    /// Класс для взаимодействия с командной строкой
    /// </summary>
    public static class Cmd
    {
        /// <summary>
        /// Метод запускающий команду в скрытом виде (без открытия окна консоли).
        /// </summary>
        /// <param name="command">Команда, которая будет запущена.</param>
        /// <returns>Возвращает текст выходного потока.</returns>
        public static string RunHidden(string command)
        {
            ProcessStartInfo procInfo = new ProcessStartInfo("cmd.exe", string.Format("/C \"{0}\"", command))
            {
                RedirectStandardOutput = true,
                UseShellExecute = false,
                WindowStyle = ProcessWindowStyle.Hidden,
                CreateNoWindow = true
            };

            string output = string.Empty;

            using (Process process = Process.Start(procInfo))
            {
                using (StreamReader streamReader = process.StandardOutput)
                {
                    output = streamReader.ReadToEnd();
                }
            }

            return output;
        }
    }
}
